{{tag>serveur réseau dns}}

====== Configurer un serveur DNS pour son poste de travail avec Dnsmasq ======
DnsMasq est un petit serveur DNS (cache DNS). Peu gourmand en ressources et très simple à configurer, il est bien adapté à une installation pour installer un petit serveur DNS sur son poste de travail.

Pour la résolution des noms, il se base sur les DNS déclarés dans la configuration réseau (/etc/resolv.conf) ou sur le fichier /etc/hosts. Ce qui est bien pratique pour configurer une petite zone lan : il suffit d’éditer le fichier /etc/hosts comme nous le ferions pour une seule machine.

===== Installer une interface réseau virtuelle pour le serveur DNS =====

Éditer /etc/systemd/network/10-virtualeth0.netdev
<file>
[NetDev]
Name = virtualeth0
Kind = dummy
</file>

Éditer /etc/systemd/network/10-virtualeth0.network
<file>
[Match]
Name = virtualeth0

[Network]
Address = 10.10.10.1/24
Address = fd00::/8
</file>

<code bash>
systemctl start systemd-networkd.service
systemctl enable systemd-networkd.service
reboot
</code>

Après le redémarrage vérifier la présence de l'interface réseau virtuelle.
<code>
ip a
…
3: virtualeth0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 9a:3c:56:42:f5:c9 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.1/24 brd 10.10.10.255 scope global virtualeth0
       valid_lft forever preferred_lft forever
    inet6 fd00::/8 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::983c:56ff:fe42:f5c9/64 scope link
       valid_lft forever preferred_lft forever
…
</code>

===== Configuration du client DHCP =====
Pour pouvoir ajouter le serveur DNS local à /etc/resolv.conf, il faut renseigner l’option prepend qui permet l’ajout du serveur DNS local en début de la liste des serveurs DNS fournit automatiquement par DHCP.

Vérifier les DNS présents :
<code bash>
$ nmcli dev show | grep DNS
IP4.DNS[1]:                    yyy.yyy.yyy.yyy
IP4.DNS[1]:                    yyy.yyy.yyy.yyy
IP6.DNS[1]:                    yyyy:yyyy:yyyy::yyyy
IP6.DNS[2]:                    yyyy:yyyy:yyyy::yyyy
IP6.DNS[3]:                    yyyy:yyyy:yyyy::yyyy
$ resolvectl dns
Global:
Link 2 (enp0sxx):
Link 3 (wlx803xxxxx): yyyy:yyyy:yyyy::yyyy yyyy:yyyy:yyyy::yyyy yyyy:yyyy:yyyy::yyyy yyy.yyy.yyy.yyy
Link 4 (wlo1): yyy.yyy.yyy.yyy
Link 6 (virtualeth0):
</code>

Éditer /etc/dhcp/dhclient.conf
<file>
prepend domaine-perso.fr 10.10.10.1 fd00::
</file>

===== Domaine local du poste de travail =====
Voir le domaine local du poste de travail
<code bash>
$ hostname -d

</code>

Définir le domaine local de la machine Ubuntu
<code bash>
$ sudo hostnamectl set-hostname MachineUbuntu.domaine-perso.fr --static
$ hostname -d
domaine-perso.fr
</code>
===== Installation de Dnsmasq =====
Installer les applications de base pour Dnsmasq et sa gestion
<code bash>
$ sudo apt install dnsmasq net-tools
</code>

===== Configuration de Dnsmasq =====
